#ifndef _CURVEFACTORY_H_
#define _CURVEFACTORY_H_

/**
* @file curvefactory.h
* August 11, 2008
* 
* @brief Defines the interface for the Factory of the Curve objects.
*        Caution: the created object should be deleted explicitly outside!
* 
* @author Andre Pereira (brabo@tecgraf.puc-rio.br)
* 
* @see Curve
*/

// includes
//----------
#include "curve.h"


// class definition
//------------------
class CurveFactory
{

public:
  /*!
  * @brief creates Curve object
  * @param _type: the type of the curve (it can be LINE, POLYNINE, ARC, etc)
  * @return a pointer to the created curve object.
  */
  static Curve* create( Curve::ECurveType _type );

};

#endif // _CURVEFACTORY_H_
